Field of the Invention
This invention relates generally to solid state disks and particularly to usage schemes used by solid state disks.
Description of the Prior Art
With the advent of the popularity of solid state drives (SSDs) and exponential growth of network content, the emergence of all-flash storage systems such as, SSD arrays, or storage appliances has been realized. These systems or appliances are mostly network attached storage (NAS) or storage attached network (SAN) with a high-speed, high bandwidth network such as a 10 Giga bit Ethernet (10 GbE). These storage units typically include arrays of one or more SSDs to meet the requisite capacity and performance.
Blocks of data are typically identified by a logical block address (LBA) from a host that uses the SSDs to store and/or read information. Logical units (LUN) are associated with LBAs. Using the host-provided LBA and LUN, locations in the SSDs are identified for storage of information. In systems using SSDs that are accessible to multiple users, the information in the SSDs needs to be organized in a way as to delineate space assigned to each user.
It is possible, and in fact, commonplace for users to require more storage space than initially assigned. For example, a user may have been initially assigned a space of 10 Giga bytes (Gb) and at some time in the future, required another 5 or 10 or 20 Gb. Currently, this is handled by writing the contents of the SSDs to another location, reformatting the SSDs and then assigning the desired additional space to the user. In this manner, the user is assigned its initial space and added space in a contiguous fashion in the SSDs. For example, an initial space of 10 Gb is immediately followed by the additional space in the SSDs. The user is unaware of how the additional space is identified and assigned for it in the SSDs. For instance, whether the additional space is in contiguous with the prior-assigned space remains unknown to the user, nor does the user care to know this information.
The problem with the foregoing is the steps required before being able to allocate additional space in that re-writing and formatting undesirably consume time and resources and can render the SSDs unusable to all of the other users when even in the case where one user resizes its storage size. A similar problem exists when a user no longer requires the initial assigned space and wishes to reduce this space by removing LBAs. Stated differently, existing LUN resizing, deletion, or migration require formatting of the entire memory array (or storage pool) because they allocate only consecutive LBAs within the array to LBAs associated with a LUN. This problem is exaggerated even more as the capacity of the SSDs grows larger and the number of users per SSDs increases.
Thus, there is a need for a storage appliance with improved LUN management scheme.